
#ifndef LOD_PROC_H
#define LOD_PROC_H

#include <vector>

#include <GL/glew.h>
#include <GL/glut.h>

#include "param.h"
#include "display/disp.h"

class proc
{
    public:
    void idle();
    void visibility(int vis);
    void display();
    void reshape (int w, int h);

    void keyboard(unsigned char key, int x, int y);
    void keyboard_special(int key, int x, int y);

    void mouse(int button, int state, int x, int y);
    void motion(int x, int y);
    void passive_motion(int x, int y);

    proc(param* p)
     : params(p)
    {
        gen_menu();
    }

    ~proc()
    {
        del_menu();
    }

    private:
    void gen_menu();
    void del_menu();
    void new_active_display(disp* olddisp, disp* newdisp);

    param* params;
    disp* active_display;
    std::vector<disp*> menu_items;
};

#endif // LOD_PROC_H
